import CookieUtil from '@/utils/cookie.js'

const TOKEN_KEY = 'ex_token'

/**
 * 设置 Token
 *
 * @param {string} tokenValue Token 的值
 * @param {number} tokenMaxAge Token 有效天数
 * @throws {Error} 当参数类型不正确时抛出错误
 */
export function setToken(tokenValue, tokenMaxAge = 7) {
    if (typeof tokenValue !== 'string') {
        throw new Error('Token must be a string')
    }
    if (typeof tokenMaxAge !== 'number') {
        throw new Error('Token max age must be a number')
    }
    CookieUtil.setCookie(TOKEN_KEY, `EX ${tokenValue}`, tokenMaxAge)
}

/** 
 * 获取 Token
 * @returns {string|null} 返回 token 值，如果不存在则返回 null
 */
export function getToken() {
    return CookieUtil.getCookie(TOKEN_KEY)
}

/** 
 * 验证 Token 格式
 * @param {string} token
 * @returns {boolean}
 */
export function validateToken(token) {
    if (!token) return false
    // 这里可以添加你的 token 格式验证逻辑
    // 例如：检查是否为有效的 JWT 格式
    return true
}

/** 使 Token 过期 */
export function expireToken() {
    CookieUtil.removeCookie(TOKEN_KEY)
}